package com.huaxin.hxmodulesystem.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.huaxin.hxmodulesystem.dto.ResponseResult;
import com.huaxin.hxmodulesystem.dto.request.*;
import com.huaxin.hxmodulesystem.dto.response.LoginByPhoneAndUserNameAndPasswordRespDTO;
import com.huaxin.hxmodulesystem.dto.response.WxLoginRespDTO;
import com.huaxin.hxmodulesystem.models.User;

public interface UserService extends IService<User> {
    //微信端登录
    ResponseResult<WxLoginRespDTO> loginOrRegister(WxUserLoginReqDTO in);

    //更新用户信息
    ResponseResult<String> updateUserInfo(UpdateUserInfoReqDTO in);

    //注册用户
    ResponseResult<String> registerUser(RegisterUserReqDTO in);

    //用户用手机号码加密码进行登录
    ResponseResult<LoginByPhoneAndUserNameAndPasswordRespDTO> loginByPhoneAndUserNameAndPassword(String phone, String userName, String password);

    //修改密码
    ResponseResult<String> updatePassword(UpdatePasswordReqDTO in);

    //找回密码
    ResponseResult<String> findPasswordByPhone(FindPasswordByPhoneReqDTO in);

    //禁用或启用用户；status=1启用，status=0禁用
    ResponseResult<String> disableUser(String userId, Integer status);

    //删除用户
    ResponseResult<String> deleteUser(String userId);

    //获取用户列表
    ResponseResult<Page<User>> getUserList(Integer pageNum, Integer pageSize, String search, Integer status, Integer userType, String orgId);

    //根据用户id查询用户信息
    User getUserInfoById(String userId);
}
